home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / PCCardAdapterPlugin.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  8.7 KB  |  196 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        PCCardAdapterPlugin.p
  3.  
  4.      Contains:    PC Card Socket Service Plug-In Programming Interface
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1996-1997 by Apple Computer, Inc. and SystemSoft Corporation. All rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT PCCardAdapterPlugin;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __PCCARDADAPTERPLUGIN__}
  28. {$SETC __PCCARDADAPTERPLUGIN__ := 1}
  29.  
  30. {$I+}
  31. {$SETC PCCardAdapterPluginIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __NAMEREGISTRY__}
  38. {$I NameRegistry.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __INTERRUPTS__}
  41. {$I Interrupts.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __PCCARD__}
  44. {$I PCCard.p}
  45. {$ENDC}
  46.  
  47.  
  48. {$PUSH}
  49. {$ALIGN POWER}
  50. {$LibExport+}
  51.  
  52.  
  53. {------------------------------------------------------------------------------------
  54.   Types
  55. ------------------------------------------------------------------------------------}
  56. {     Interrupt Status Change bits }
  57.  
  58.  
  59. CONST
  60.     kSCBatteryDead                = $01;                            {  Battery Dead Status Change }
  61.     kSCBatteryLow                = $02;                            {  Battery Warning Status Change }
  62.     kSCReady                    = $04;                            {  Ready Status Change }
  63.     kSCCardDetect                = $08;                            {  Card Detect Status Change }
  64.     kSCCardEjected                = $10;                            {  Card Ejected }
  65.     kSCStatusChange                = $20;                            {  PC Card Status Change Signal Asserted }
  66.     kSCRingIndicate                = $40;                            {  PC Card Ring Indicate Signal Asserted }
  67.  
  68.  
  69. {    IRQ bits }
  70.     kIRQLevelMask                = $1F;
  71.     kIRQInvalid                    = $20;
  72.     kIRQHigh                    = $40;
  73.     kIRQEnable                    = $80;
  74.  
  75.  
  76. {     bits for adapter characteristics flags }
  77.  
  78.     SS_ADPT_FLG_IND                = $01;                            {  indicators for write-protect, card lock, }
  79.                                                                 {  battery status, busy status, and XIP }
  80.                                                                 {  are shared for all sockets }
  81.     SS_ADPT_FLG_PWR                = $02;                            {  if set indicates that the sockets }
  82.                                                                 {  share the same power control }
  83.     SS_ADPT_FLG_DBW                = $04;                            {  all windows on the adapter must use }
  84.                                                                 {  the same Data Bus Width }
  85.     SS_ADPT_FLG_CARDBUS            = $08;                            {  all sockets are CardBus PC Card capable }
  86.     SS_ADPT_FLG_DMA                = $10;                            {  the adapter has DMA capability }
  87.                                                                 {     bits for adapter power characteristics }
  88.     SS_ADPT_FLG_V33                = $20;                            {  adapter supports 3.3 volt power to socket }
  89.     SS_ADPT_FLG_V50                = $40;                            {  adapter supports 5.0 volt power to socket }
  90.     SS_ADPT_FLG_V12                = $80;                            {  adapter supports 12.0 volt power to socket }
  91.  
  92.  
  93. {------------------------------------------------------------------------------------
  94.   Calls exported by the Family
  95. ------------------------------------------------------------------------------------}
  96. FUNCTION CSReportStatusChange({CONST}VAR adapterRef: RegEntryID; whichSocket: PCCardSocket; statusChange: PCCardSCEvents; socketStatus: PCCardSocketStatus): OSStatus; C;
  97. {------------------------------------------------------------------------------------
  98.   Plugin Dispatch Table
  99. ------------------------------------------------------------------------------------}
  100.  
  101. TYPE
  102.     SSValidateHardwareProc = ProcPtr;  { FUNCTION SSValidateHardwareProc((CONST)VAR deviceID: RegEntryID): OSStatus; C; }
  103.  
  104.     SSInitializeProc = ProcPtr;  { FUNCTION SSInitializeProc((CONST)VAR deviceID: RegEntryID; replacingOldDriver: BOOLEAN): OSStatus; C; }
  105.  
  106.     SSSuspendProc = ProcPtr;  { FUNCTION SSSuspendProc((CONST)VAR deviceID: RegEntryID): OSStatus; C; }
  107.  
  108.     SSResumeProc = ProcPtr;  { FUNCTION SSResumeProc((CONST)VAR deviceID: RegEntryID): OSStatus; C; }
  109.  
  110.     SSFinalizeProc = ProcPtr;  { FUNCTION SSFinalizeProc((CONST)VAR deviceID: RegEntryID; beingReplaced: BOOLEAN): OSStatus; C; }
  111.  
  112.     SSInquireAdapterProc = ProcPtr;  { FUNCTION SSInquireAdapterProc(VAR numberOfSockets: ItemCount; VAR numberOfWindows: ItemCount; VAR numberOfBridgeWindow: ItemCount; VAR capabilities: PCCardAdapterCapabilities): OSStatus; C; }
  113.  
  114.     SSInquireSocketProc = ProcPtr;  { FUNCTION SSInquireSocketProc(socket: PCCardSocket; VAR numberOfWindows: ItemCount; VAR supportedSocketStatus: PCCardSocketStatus; VAR supportedStatusChange: PCCardSCEvents): OSStatus; C; }
  115.  
  116.     SSGetSocketProc = ProcPtr;  { FUNCTION SSGetSocketProc(socket: PCCardSocket; VAR Vcc: PCCardVoltage; VAR Vpp: PCCardVoltage; VAR Vs: PCCardVoltage; VAR socketIF: PCCardInterfaceType; VAR customIFID: PCCardCustomInterfaceID; VAR socketStatus: PCCardSocketStatus; VAR SCEventsMask: PCCardSCEvents; VAR IRQ: PCCardIRQ; VAR DMA: PCCardDMA): OSStatus; C; }
  117.  
  118.     SSSetSocketProc = ProcPtr;  { FUNCTION SSSetSocketProc(socket: PCCardSocket; Vcc: PCCardVoltage; Vpp: PCCardVoltage; socketIF: PCCardInterfaceType; customIFID: PCCardCustomInterfaceID; statusReset: PCCardSocketStatus; SCEventsMask: PCCardSCEvents; IRQ: PCCardIRQ; DMA: PCCardDMA): OSStatus; C; }
  119.  
  120.     SSResetSocketProc = ProcPtr;  { FUNCTION SSResetSocketProc(socket: PCCardSocket): OSStatus; C; }
  121.  
  122.     SSGetStatusProc = ProcPtr;  { FUNCTION SSGetStatusProc(socket: PCCardSocket; VAR currentStatus: PCCardSocketStatus; VAR changedStatus: PCCardSocketStatus): OSStatus; C; }
  123.  
  124.     SSInquireWindowProc = ProcPtr;  { FUNCTION SSInquireWindowProc(VAR socket: PCCardSocket; window: PCCardWindow; VAR windowState: PCCardWindowState; VAR windowSize: PCCardWindowSize; VAR windowAlign: PCCardWindowAlign): OSStatus; C; }
  125.  
  126.     SSGetWindowProc = ProcPtr;  { FUNCTION SSGetWindowProc(VAR socket: PCCardSocket; window: PCCardWindow; VAR windowState: PCCardWindowState; VAR startAddress: PhysicalAddress; VAR windowSize: PCCardWindowSize; VAR windowOffset: PCCardWindowOffset; VAR memSpeed: PCCardAccessSpeed): OSStatus; C; }
  127.  
  128.     SSSetWindowProc = ProcPtr;  { FUNCTION SSSetWindowProc(socket: PCCardSocket; window: PCCardWindow; windowState: PCCardWindowState; startAddress: PhysicalAddress; windowSize: PCCardWindowSize; windowOffset: PCCardWindowOffset; memSpeed: PCCardAccessSpeed): OSStatus; C; }
  129.  
  130.     SSGetWindowOffsetProc = ProcPtr;  { FUNCTION SSGetWindowOffsetProc(VAR socket: PCCardSocket; window: PCCardWindow; VAR windowState: PCCardWindowState; VAR windowOffset: PCCardWindowOffset): OSStatus; C; }
  131.  
  132.     SSSetWindowOffsetProc = ProcPtr;  { FUNCTION SSSetWindowOffsetProc(socket: PCCardSocket; window: PCCardWindow; windowState: PCCardWindowState; windowOffset: PCCardWindowOffset): OSStatus; C; }
  133.  
  134.     SSInquireBridgeWindowProc = ProcPtr;  { FUNCTION SSInquireBridgeWindowProc(VAR socket: PCCardSocket; window: PCCardWindow; VAR windowState: PCCardWindowState; VAR windowSize: PCCardWindowSize; VAR windowAlign: PCCardWindowAlign): OSStatus; C; }
  135.  
  136.     SSGetBridgeWindowProc = ProcPtr;  { FUNCTION SSGetBridgeWindowProc(VAR socket: PCCardSocket; window: PCCardWindow; VAR windowState: PCCardWindowState; VAR startAddress: PhysicalAddress; VAR windowSize: PCCardWindowSize): OSStatus; C; }
  137.  
  138.     SSSetBridgeWindowProc = ProcPtr;  { FUNCTION SSSetBridgeWindowProc(socket: PCCardSocket; window: PCCardWindow; windowState: PCCardWindowState; startAddress: PhysicalAddress; windowSize: PCCardWindowSize): OSStatus; C; }
  139.  
  140.     SSGetInterruptSetMemberProc = ProcPtr;  { FUNCTION SSGetInterruptSetMemberProc(socket: PCCardSocket; VAR interruptSetMember: InterruptSetMember): OSStatus; C; }
  141.  
  142.     SSEjectCardProc = ProcPtr;  { FUNCTION SSEjectCardProc(socket: PCCardSocket): OSStatus; C; }
  143.  
  144.  
  145. CONST
  146.     kServiceTypePCCardAdapter    = 'sock';
  147.     kPCCardAdapterPluginVersion    = $00000001;
  148.     kPCCardAdapterPluginCurrentVersion = $00000001;
  149.  
  150.  
  151. TYPE
  152.     PCCardAdapterPluginHeaderPtr = ^PCCardAdapterPluginHeader;
  153.     PCCardAdapterPluginHeader = RECORD
  154.         version:                UInt32;
  155.         reserved1:                UInt32;
  156.         reserved2:                UInt32;
  157.         reserved3:                UInt32;
  158.     END;
  159.  
  160.     PCCardAdapterPluginDispatchTablePtr = ^PCCardAdapterPluginDispatchTable;
  161.     PCCardAdapterPluginDispatchTable = RECORD
  162.         header:                    PCCardAdapterPluginHeader;
  163.         validateHardware:        SSValidateHardwareProc;
  164.         initialize:                SSInitializeProc;
  165.         suspend:                SSSuspendProc;
  166.         resume:                    SSResumeProc;
  167.         finalize:                SSFinalizeProc;
  168.         inquireAdapter:            SSInquireAdapterProc;
  169.         inquireSocket:            SSInquireSocketProc;
  170.         getSocket:                SSGetSocketProc;
  171.         setSocket:                SSSetSocketProc;
  172.         resetSocket:            SSResetSocketProc;
  173.         getStatus:                SSGetStatusProc;
  174.         inquireWindow:            SSInquireWindowProc;
  175.         getWindow:                SSGetWindowProc;
  176.         setWindow:                SSSetWindowProc;
  177.         getWindowOffset:        SSGetWindowOffsetProc;
  178.         setWindowOffset:        SSSetWindowOffsetProc;
  179.         inquireBridgeWindow:    SSInquireBridgeWindowProc;
  180.         getBridgeWindow:        SSGetBridgeWindowProc;
  181.         setBridgeWindow:        SSSetBridgeWindowProc;
  182.         getInterruptSetMember:    SSGetInterruptSetMemberProc;
  183.         ejectCard:                SSEjectCardProc;
  184.     END;
  185.  
  186. {$ALIGN RESET}
  187. {$POP}
  188.  
  189. {$SETC UsingIncludes := PCCardAdapterPluginIncludes}
  190.  
  191. {$ENDC} {__PCCARDADAPTERPLUGIN__}
  192.  
  193. {$IFC NOT UsingIncludes}
  194.  END.
  195. {$ENDC}
  196.